#pragma once

#include "IXBaseObj.h"

/**
 *  Interface used to modify XFile.
 *
 */
class ExportXSkinLib IXFileWriter : public IXBaseObj
{
    DEF_INTERFACE(IXFileWriter, _T("{03BE8159-1638-41d6-A814-1C3CBAFBE59F}"));
public:
    /**
     *
     *  Pack Folder to one single XFile.
     *
     *  @param szRootPath       Path of the folder which will be packed.
     *  @param szXFilePath      Path in which the XFile will be stored.
     *
     */
    virtual HRESULT STDMETHODCALLTYPE   WriteFolder(IN LPCTSTR szRootPath, IN LPCTSTR szXFilePath) = 0;

    virtual HRESULT STDMETHODCALLTYPE   CreateXFile(IN LPCTSTR szXFilePath) = 0;
    virtual HRESULT STDMETHODCALLTYPE   AppendLocalFile(IN LPCTSTR szXFilePath, IN LPCTSTR szRelativePath, IN LPCTSTR szRootPath) = 0;
};
